home *** CD-ROM | disk | FTP | other *** search
/ Power CD / Power CD ATARI-Rechner Lieben.iso / UTILITY / NOTEPD / NOTEPAD.TXT < prev   
Encoding:
Text File  |  1990-03-27  |  9.7 KB  |  166 lines

  1.                    NOTEPAD - das Notizblatt-Accessory
  2.                    ----------------------------------
  3.                    Version 1.2               16.08.90
  4.  
  5.  
  6.  
  7. NotePad - wozu?
  8. ---------------
  9. Bei vielen Gelegenheiten während der Arbeit am ST mußte ich mir Notizen
  10. machen: Telefonnummern, Progamm-Ausgaben, etc., etc. Also griff ich jedes-
  11. mal zu Papier und Kugelschreiber und hatte innerhalb kürzester Zeit einen
  12. nicht mehr überschaubaren Wust von fliegenden Zetteln angehäuft.
  13. Mit der Zeit wurde das lästig. Sehr lästig. So lästig, daß ich anfing, mir
  14. Gedanken zu machen, ob es sich bei diesem Problem nicht um eines handelt,
  15. dessen Lösung geradezu nach einer Accessory-Anwendung schreit:
  16. Ein kleines Programm, das jederzeit aus anderen (GEM-) Programmen heraus
  17. aufrufbar ist und die Notizen, die so anfallen, aufzunehmen in der Lage
  18. ist. Klingt an sich ganz einfach - aber während der Entwicklung von der
  19. Idee zum Programm fielen mir immer neue Anwendungsmöglichkeiten und weitere
  20. Anforderungen an den Funktionsumfang ein, so daß das Ganze schließlich doch
  21. einen ziemlichen Umfang angenommen hat.
  22. Die Arbeit hat sich aber gelohnt: Seitdem NotePad fertig ist greife ich nur
  23. noch äußerst selten zu Papier und Kuli; das meiste kriegt NotePad zu
  24. schlucken.
  25.  
  26. Realisierung
  27. ------------
  28. NotePad soll Notizen aufnehmen - na schön. Aber wie?
  29. Ein Mini-Editor mußte her; 'Mini' weil das Programm als Accessory laufen
  30. soll und somit die ganze Zeit über den Speicher blockiert. Aber ein
  31. gewisses Maß an Komfort sollte der Editor auch bieten. Außerdem war da
  32. die Frage, wieviel Platz NotePad für Notizen zur Verfügung stellen sollte.
  33. Ich erinnerte mich an meinen guten alten Sharp MZ80-K, auf dem ich meine
  34. ersten Erfahrungen mit Computern machte: Der Bildschirm hatte 25 Zeilen zu
  35. 40 Spalten - das sollte wohl reichen. Aber wenn auch Notizen aus anderen
  36. Programmen heraus möglich sein sollten, z.B. Zwischenergebnisse o.ä., dann
  37. durfte das Window von NotePad nicht den Großteil des Bildschirms bedecken;
  38. also entschied ich mich für den mittleren Systemfont als Zeichensatz. Die
  39. Zeichen sind gerade noch lesbar und 25x40 Zeichen brauchen dann etwa ein
  40. Viertel der Bildschirmfläche.
  41. Nun ist es zwar so, daß die meisten Notizen nur begrenzte Zeit von Inter-
  42. esse sind; was aber, wenn man doch einmal dauerhaft etwas ablegen will?
  43. Also kam eine Funktion zum Speichern und Laden hinzu. Auch kann es vor-
  44. kommen, daß man das Notierte 'Schwarz auf Weiß' braucht - eine Drucker-
  45. Routine folgte. Wenn man schon mal dabei ist, I/O-Routinen zu schreiben
  46. und zusätzlich noch über ein Modem verfügt, liegt es nahe, auch an eine
  47. Ausgabe auf diesem Weg zu denken.
  48. Schließlich baute ich noch eine integrierte Hilfe-Funktion ein, falls tat-
  49. sächlich mal jemand anderer mit diesem Programm umgehen müßte.
  50.  
  51. Bedienung
  52. ---------
  53. Der Editor arbeitet FullWindow-orientiert, soll heißen, man kann den Cursor
  54. an jede Stelle des Windows bringen und dort Eingaben oder Änderungen vor-
  55. nehmen. Die Cursor-Steuerung ist sowohl über die Cursortasten als auch über
  56. die Maus möglich. Der Editor arbeitet im Einfügemodus, das heißt daß ein
  57. neu eingegebenes Zeichen nicht ein altes überschreibt, sondern an der
  58. aktuellen Cursorposition eingefügt wird. Die üblichen Steuerfunktionen sind
  59. eingebaut: INSERT fügt ein Leerzeichen ein, DELETE löscht das Zeichen an
  60. der aktuellen Cursorposition, BACKSPACE das Zeichen vor dem Cursor.
  61. TAB läßt den Cursor an die nächste Tabulatorposition springen und fügt an
  62. den übersprungenen Stellen Leerzeichen ein (also keinen 'echten' Tabulator);
  63. die Tabulatorweite ist 4. Die Cursortasten steuern den Cursor wie man es im
  64. allgemeinen von ihnen erwartet; SHIFT und '<-' bzw. SHIFT und '->' bewegen
  65. den Cursor an den Zeilenanfang bzw. das Zeilenende. HOME bewegt den Cursor
  66. in die linke obere Ecke. SHIFT und DELETE löscht die aktuelle Zeile und
  67. SHIFT und HOME löscht nach Sicherheitsabfrage den gesamten Text. UNDO macht
  68. die letzte Lösch-Aktion rückgängig und HELP zeigt die Hilfsseite an.
  69. Um die Bedienung so komfortabel wie möglich zu gestalten, habe ich in das
  70. NotePad-Window ein Drop-down-Menü eingebaut. Es verhält sich genauso wie
  71. ein Menütitel der gewohnten Menüzeile, obwohl es natürlich kein 'echtes'
  72. Menü ist - das verhindert schon das AES (wo kommen wir da hin: entweder
  73. Window oder Menü! Und noch dazu in einem Accessory - tztztz!).
  74. Die Menüeinträge sind eigentlich selbsterklärend, daher hier nur eine
  75. kurze Auflistung:
  76. LADEN...     ^L     lädt eine NotePad-Datei
  77. SPEICHERN... ^S     speichert eine NotePad-Datei
  78. DRUCKEN      ^P     druckt den Text über den parallelen Port aus
  79. MODEM        ^M     sendet den Text an die serielle Schnittstelle
  80. HILFE...     ^H     gibt die Hilfsseite aus
  81. ENDE         ^E     schickt das Accessory wieder schlafen (Text und Window-
  82.                     Position bleiben erhalten)
  83. Der Aufruf der Menüeinträge ist auch über die angegebenen Shortcuts möglich,
  84. also z.B. das Laden einer NotePad-Datei mittels CONTROL und L.
  85.  
  86. Hinweise
  87. --------
  88. An einigen Stellen (insbesondere bei der Implementation des 'Menüs') mußte
  89. ich mich schwer mit dem AES anlegen - so etwas ist ja auch eigentlich nicht
  90. vorgesehen. Aber nichtsdestotrotz sehr nützlich. Außerdem wollte ich nicht
  91. vor dem AES kapitulieren. Leider hat solche Beharrlichkeit auch ihre
  92. Schattenseiten: Ich mußte Kompromisse schließen. Um nicht den Pfad der
  93. Tugend zu verlassen (sprich: keine 'illegalen' Funktionen oder undokumen-
  94. tierten Variablen zu benutzen), nahm ich in Kauf, daß an manchen Stellen
  95. kleinere 'Ungereimtheiten' auftreten. Damit sollte aber sichergestellt sein,
  96. daß NotePad mit allen TOS-Versionen lauffähig ist.
  97. Die erwähnten Ungereimtheiten im einzelnen:
  98. - Ist das NotePad-Window nicht das oberste (Top-) Window, verschwindet der
  99.   Menütitel oben rechts in der Titelzeite des Windows.
  100. - Wird das NotePad-Window während der Anzeige der Hilfsseite deaktiviert
  101.   (untopped) und von einem anderen Window ganz oder teilweise verdeckt,
  102.   werden neu zu zeichnende Bereiche mit dem Usertext und nicht mit dem
  103.   Hilfstext aufgebaut; das führt dazu, daß mehr oder weniger Nonsens im
  104.   NotePad-Window zu lesen ist. Wird das NotePad-Window dann aber wieder
  105.   aktiviert, wird der gesamte Window-Inhalt mit dem Usertext aktualisiert.
  106.   Da allerdings nur selten neue Windows geöffnet werden, während man die
  107.   Hilfsseite angewählt hat, fällt diese Unschönheit nur wenig ins Gewicht.
  108. - Klickt man bei aktivem NotePad-Window (Top-Window) in einen Bereich
  109.   außerhalb des Windows, wird vom Screen-Manager die entsprechende Aktion
  110.   ausgelöst - so weit, so gut. Allerdings erreicht die Nachricht über das
  111.   Mausklick-Ereignis nicht immer auch NotePad (warum, weiß ich nicht; die
  112.   Programmierer von Digital Research wahrscheinlich auch nicht). So ist
  113.   es manchmal notwendig, NotePad durch einen Mausklick ins Window wieder
  114.   zu 'wecken'. Insbesondere kann es hierbei vorkommen, daß beim Berühren
  115.   des Menütitels das Menü nicht herunterklappt; auch in diesem Fall hilft
  116.   ein Mausklick auf den Menütitel.
  117. "It's not a bug - it's a feature!" heißt die übliche Ausrede, glaube ich.
  118. Aber alles läßt das AES eben doch nicht mit sich machen (alleine schon
  119. das Redrawing von Windows ist eine Wissenschaft für sich - manches macht
  120. das AES oder der Screen-Manager selbst, anderes wird kategorisch abgelehnt).
  121.  
  122. Ein weiterer Hinweis betrifft die NotePad-Dateien. NotePad-Texte werden
  123. immer komplett abgespeichert, d.h. alle 1000 möglichen Zeichen (nicht un-
  124. bedingt elegant, aber einfach zu implementieren). Der Text wird als ASCII-
  125. Text gespeichert, wobei keine Zeilenende-Kennzeichnung (CRLF) eingefügt wird.
  126. Das hat zwei Gründe: Zunächst ist eine Zeilenende-Kennzeichnung nicht not-
  127. wendig, da alle Zeilen gleich lang sind. Der zweite Grund ist allerdings
  128. gewichtiger und liegt im Datei-Aufzeichnungsformat des TOS. Die kleinste
  129. Aufzeichnungseinheit ist ein 'Cluster', der aus zwei Sektoren zu je 512
  130. Bytes besteht, also 1024 Bytes umfasst. Eine NotePad-Datei mit einer Länge
  131. von 1000 Bytes paßt demnach in einen solchen Cluster und belegt somit den
  132. geringstmöglichen Platz auf Diskette oder Harddisk. Hätte jede Zeile ein
  133. CRLF am Ende, würde eine NotePad-Datei 1050 Bytes umfassen und müßte in
  134. zwei Clusters abgelegt werden; damit würden aber jedes Mal 998 Bytes nutzlos
  135. verschwendet. Es ist jetzt auch klar, warum es keinen Sinn hätte, nur die
  136. wirklich mit Text gefüllten Teile des NotePad-Windows abzuspeichern: Der auf
  137. der Diskette bzw. Harddisk belegte Platz bliebe gleich.
  138. Da aber die NotePad-Dateien keine Zeilenende-Kennzeichnung aufweisen ist es
  139. nicht ohne weiteres möglich, sie mit anderen ASCII-Editoren zu lesen; die
  140. gesamte Datei würde als eine einzige Zeile angesehen werden. Dieses Problem
  141. läßt sich, wenn es denn unbedingt sein muß, umgehen, indem man die Zeilen-
  142. länge im externen Editor auf 40 Zeichen/Zeile einstellt.
  143.  
  144. Schlußbemerkung
  145. ---------------
  146. NotePad Version 1.2 ist Freeware. Das heißt, das Programm darf (und soll)
  147. beliebig weitergegeben werden. Allerdings gelten folgende Voraussetzungen:
  148. - NotePad darf nicht kommerziell vertrieben werden! (Das betrifft nicht
  149.   die Unkostenbeiträge für PD-Disketten)
  150. - NotePad sollte immer zusammen mit dieser Anleitung weitergegeben werden.
  151. - Veränderungen an NotePad müssen vor einer Weitergabe mit mir abgesprochen
  152.   werden.
  153. Obwohl ich bei der Programmierung viel Mühe aufgewandt habe und NotePad bei
  154. mir seit Monaten fehlerfrei läuft kann ich selbstverständlich keinerlei
  155. Haftung für die fehlerfreie Funktion des Programms oder eventuell aus der
  156. Benutzung von NotePad entstehende Schäden übernehmen.
  157. Bei Fehlern (hoffentlich nicht!), für Fragen (warum nicht?), für Anregungen
  158. (sehr willkommen!) und für Zuwendungen (dito) stehe ich gerne zur Verfügung:
  159.     Michael Zuhl
  160.     Transvaalstr. 16
  161.     1000 Berlin 65
  162.  
  163.  
  164. NotePad  Version 1.2  16.08.90  ©mz'90
  165.  
  166.